Computer keyboard and cursor control system and method with keyboard map switching

ABSTRACT

Disclosed is a computer keyboard and cursor control system and method for use with a computer having a pointing device operated by a user. Upon determining that the user is operating the pointing device, the invention switches to a different keymap, so as to remap at least one typing key on the keyboard into other functional key(s) such as a “left mouse click” function button.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation-in-part of prior copending U.S.patent application Ser. No. 10/135,293, filed Apr. 30, 2002, by theinventor of the present invention. Such application is incorporated byreference herein.

FIELD OF THE INVENTION

This invention relates to computer keyboards, and more specifically tocomputer keyboards with finger-operated or hand-operated cursor controldevices.

BACKGROUND OF THE INVENTION

Various types of cursor control or pointing device systems for computerare in common use today. They include the mouse, trackball, touchpad,touchscreen, joystick, pointing stick and others, and are found onalmost all desktop and laptop or notebook computers, and on somepersonal digital assistants, game consoles and other devices where acursor on a display screen must be manually controlled by one or morefingers of a user. The pointing device may be either external to thekeyboard, as in a traditional mouse, or built-in to the keyboardconsole, as in many laptop computers.

Several different functions normally must be performed by the pointingdevice system. Not only must the cursor be moved around the screen, butalso objects such as hyperlinks on a Web page or local program icons, onthe screen must often be selected or activated. This of course istraditionally accomplished on a regular mouse by cursor select or “mouseclick” button(s).

Today, most personal computers have two “click buttons” located eitheron the mouse itself or mounted on or near the keyboard console. The“left click” button normally activates the cursor-selected object (e.g.,causes the computer to “jump” to a new screen such as through ahyperlink, or causes a program to be activated or “launched”), and the“right click” button normally is available for determining “properties”or other optional information about the screen object, such as filelocation or size, or for performing specialized functions. Also,increasingly, more than two “click buttons” are often being provided tooffer greater control over more sophisticated tasks such as photo orvideo editing.

Traditional pointing devices and click buttons have some disadvantages.Consider, for example, the touch pad or track pad device found on manynotebook computers. A typical prior art touchpad arrangement is shown inFIG 1. Here, laptop computer keyboard 10 has a plurality of text typingkeys 20, a touchpad 30 a left click button 40 and a right click button50. The touchpad is typically located a short distance below the bottomrow of keys (toward the user), and the click buttons are typicallyplaced immediately below the touchpad.

In normal operation, the user is expected to use his or her index fingerfor the touchpad and the thumb of the same hand for the click buttons.For example, for a right-handed user, the user drags his or her rightindex finger over the surface of the touchpad to move the cursor aroundthe screen. Capacitive or other touch-sensing electronics associatedwith the touchpad convert the finger movement into cursor controlsignals that are interpreted through graphics processors or displayprocessors, and the operating system, to control the visible cursor onthe screen.

Optical sensing is also sometimes used for some touch screens. When thecursor has reached its intended “target”, such as, over a live link oricon desired to be activated, the cursor is halted and the right-handeduser (for example) pushes the left click button with the right thumb.The left hand normally is not doing anything at this time.

Unlike a regular desktop mouse, however, it is difficult for some usersto push the left or right click buttons with the thumb while the indexfinger of the same hand remains on or just above the touchpad. Forexample, when the index finger is placed on the bottom-left corner ofthe touchpad 30 of FIG. 1, it is difficult to push the left click button40 by the thumb. It is also difficult, for the same reason, to use thetouchpad to “drag” files into “folders” or other areas on the screen.Furthermore, it has been found that users (right-handed users in thiscase) almost always feel uncomfortable when they push the right clickbutton 50 by the thumb while the index finger remains on the touchpad30. The uncomfortableness is exacerbated if the user has large fingersor finger dexterity is limited in some way.

A different arrangement is available on some notebook or laptopcomputers. For example, some notebook computers have a small joystick orpointing stick located approximately in the center of the keyboard andnestled among the keys. Some users feel comfortable with thisarrangement because of a different cursor control feeling or because theuser may not need to move his or her hands from the home position on thekeyboard. But the basic operation of the click buttons in thisarrangement is the same as with the traditional touchpad. Although theclick buttons are not immediately adjacent to the pointing device, theyare still in the same position relative to the user. In other words, inthis arrangement, the click buttons are normally located below thebottom row of typing keys (toward the user) to allow for operation bythe thumb of the same hand that is operating the pointing device. Inthis arrangement, it is still uncomfortable for many users to press theleft or right click button by the thumb.

It has been discovered that the above-mentioned difficulties anduncomfortable feelings arise in large part from the relative positionsof the touchpad and click buttons found on many traditional notebookcomputers. As mentioned previously, the click buttons are normallylocated immediately below, or even touching, the touchpad. Thus, thethumb must be brought very close to, or in contact with, the indexfinger when a click button must be pressed.

It has also been discovered that this uncomfortableness is also due tothe clicking motion of the thumb itself. Because of the relativepositions of the pointing device (such as the touchpad or joystick) andthe click buttons, the user normally must use the radial (lateral) sideof the thumb, even if the click buttons are located some distance awayfrom the pointing device. But in this arrangement, the clicking motionis not performed using the normal kinetics of the thumb. It may causesome uncomfortableness, dullness, pain or joint member degeneration overtime.

Another challenge for modern cursor control devices is that notebook (orlaptop or portable) computers are becoming more powerful every year.This means that more and more users are increasingly using notebookcomputers for heavy, complex tasks such as photo-editing, 3-D modeling,CAD/CAM computer animations or scientific calculations. These heavytasks increasingly require the use of a multi-button mouse or otherpointing device having more than two click buttons, which may have“window scroll” buttons, to scroll contents of a window, and/or “pageup/down” buttons, to move pages back and forward. Since most notebookcomputers with built-in pointing devices currently have only two clickbuttons, many,users of these heavy tasks must carry around an externalpointing device such as a multi-button mouse with their notebookcomputers, which is burdensome for the mobile user.

Various specialized cursor control devices have been proposed in theprior art. See, for example, the following U.S. Pat. No. 5,864,334;Sellers et al. U.S. Pat. No. 5,485,614 Kocis; U.S. Pat. No. 6,181,325Lee ; and et al. U.S. Pat. No. 5,914,702 Derocher. However, these priorart devices typically require unusual finger movements, extra keyboardkeys, unusual click button shapes or expensive additional hardware suchas cameras to accomplish cursor control and click button activation, andthey do not in any event completely solve the problems mentioned above.

Thus, in light of the above-mentioned difficulties and challenges in theprior art, a need exists for a computer keyboard with a cursor controldevice to improve cursor functionality and user comfort while“clicking”, and to avoid the need for an external multi-button mouse orother pointing device.

SUMMARY OF THE INVENTION

Disclosed is a computer keyboard and cursor control system having adevice and method for switching between two or more key maps.Preselected keys of the keyboard, or all keys, may be dynamically andimmediately switched by the user from a “typing mode” to a “cursor mode”in real time (while using the computer) simply by touching or otherwiseoperating a pointing device (cursor control device). In the normal“typing mode” (i.e. when the user is not using the pointing device, anddoes not intend to use the pointing device at that moment), the user isdoing nothing, or is striking keyboard keys to input characters.Normally, it is assumed that the user does not wish to use the pointingdevice while in the “typing mode”. In the “cursor mode” (i.e. the useris touching or otherwise using the pointing device), if the userdesires, selected keyboard keys are temporarily “remapped” into otherfunctions, such as “mouse click” buttons, “window scroll” buttons, and“page up/down” buttons, while the hands remain on the keyboard in thehome position, thus improving speed and efficiency.

In a feature of the invention, the pointing device is used to signal aninput controller to activate the remapping of selected keys, and thepointing device itself also remains active at all times so that thecursor may continue to be removed in conventional fashion, if desired.In this way, the user may operate a “click” function by pressing one ofthe remapped keys with any finger of either hand. This permits bothhands to be used independently, thus more efficiently, and it alsopermits a natural flexion/extension finger motion to be used rather thana radial motion by a thumb.

Remapped keys can perform not only “click” functions, but also any kindof function(s) such as execution of one or more commands; execution ofone or more command scripts, which contain programmed commands; outputof texts, characters, symbols and/or figures; “window scroll” functions;“page up/down” functions; launching one or more applications; openingone or more files; controlling volume of speaker(s); controllingbrightness of computer displays; and so on. Also, since some applicationprograms have their own, specific, sets of “shortcut” keys or “hotkeys”, each application may have its own “cursor mode” key map forremapped keys. It is important to note that virtually any kind of singlefunction or a script of serial functions (command scripts) can be mappedinto remapped keys (i.e. keys in “cursor mode”). Thus, the inventionvirtually provides another complete set of keys for every application,including the operating system, while the user is touching or otherwiseusing the pointing device (while in “cursor mode”).

When a right-handed user, for example, is controlling the cursor byusing a touchpad or joystick, the user's left hand and fingers normallyare not doing anything. Of course, in some applications, users may use“hot keys” or “short-cut keys.” (A “shortcut key” is a combination of afew keys or buttons that can command some frequently used functions,such as “save a file” or “print a document.”) Normally, however, theleft hand is “free.” This means that the left hand also can perform“mouse clicking” functions, “window scroll” functions, and/or “pageup/down” functions, if desired.

As a result, the left hand is resting for most of the time, but it isstill on the keyboard. Consequently, functions of one or more keys onkeyboard can be switched on and off by the touchpad using the right handfingers. When a right hand finger is on the touchpad (“cursor mode”),selected keys on the keyboard are available to operate as, for example,“mouse click” buttons, “window scroll” buttons and/or “page up/down”buttons. When the right hand finger is off the touchpad, keys on thekeyboard are available to operate (and should operate) as regular texttyping keys (“typing mode”).

For example if the “F” key is defined as an alternate left mouse clickbutton, the user can use the “F” key as the original “F” key while he orshe wishes to input ordinary characters (type normally) by taking his orher right hand off of the touchpad and placing it in on the keyboard.But when the user is operating the mouse cursor by using the touchpad,the “F” key operates as a “left mouse click” button, and the user canclick the button by using the “F” key. If desired, another key such asthe “S” or “L” key may be programmed to operate as a “right mouse click”button upon selection by the user. Additional click buttons, windowscroll buttons, page up/down buttons, and/or any kind of functional keysmay also be included. This capability of the present invention offers asignificant benefit in that the user can operate another complete set ofkeys without using additional hardware or an additional key switch.Speed, efficiency, portability and convenience are therefore remarkablyincreased.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features and advantages of the invention will now bedescribed with reference to the drawings of certain preferredembodiments, which are intended to illustrate and not to limit theinvention, and in which like reference numbers represent correspondingparts throughout, and in which:

FIG. 1 is a top view of a typical prior art laptop computer keyboardwith a conventional trackpad or touchpad and its associated cursorselect or “mouse click” buttons;

FIG. 2 is a combined block/pictorial diagram illustrating one embodimentof the present invention;

FIG. 3 is a flowchart illustrating the operation of one embodiment ofthe invention;

FIG. 4 is a flowchart illustrating the operation of another embodimentof the invention;

FIG. 5 is a flowchart illustrating the operation of another embodimentof the invention;

FIG. 6 is a flowchart illustrating the operation of another embodimentof the invention;

FIG. 7 is a flowchart illustrating the operation of another embodimentof the invention;

FIG. 8 shows an example of a “cursor mode” key map for a right-handeduser;

FIG. 9 shows an example of a “cursor mode” key map for a left-handeduser;

FIG. 10 shows an example of an indication on a display screen indicatingthe currently selected key map, namely an icon indicating either typingmode or cursor mode;

FIG. 11 shows an example of how the displayed cursor symbol may changein appearance depending upon whether the user has selected typing modeor cursor mode; and

FIG. 12 shows an example of a sensor attached to a pointing device toindicate whether the user's finger is touching the pointing device.

DETAILED DESCRIPTION OF THE INVENTION

In what follows, an embodiment of the present invention will bedescribed in detail with reference to the accompanying drawings.

FIG. 1 is a top view of a typical prior art laptop computer keyboardwith a conventional touchpad and its associated cursor select or “mouseclick” buttons. As has previously been discussed, this arrangement hascertain disadvantages due to the close proximity of the click buttons tothe touchpad and also due to an unnatural movement by the thumb that isnormally required to press the buttons. Usually, the number of mouseclick buttons is also limited to two. These disadvantages are overcomeby the present invention.

FIG. 2 is a combined block/pictorial diagram illustrating one embodimentof the present invention in which a novel keyboard-map-switching systemis incorporated into a computer. In a preferred embodiment, the systemincludes an input device 100, such as a keyboard with conventional keysor a keyboard displayed on a touch-screen, for typing and other tasks; apointing device or cursor control device 110; an input controller 120; adisplay screen 150; a central processing unit (CPU) 130; a graphicalprocessing unit (GPU) 140; one or more storage devices 160, such asread-only memory (ROM), random access memory (RAM) and/or a hard diskdrive; and one or more applications or programs 170 running on CPU 130and available for execution under the control of CPU 130 and anoperating system (not shown).

Pointing device 110 may comprise a touchpad, trackpad, pointing stick,trackpoint, joystick, mouse, trackball, pen (pen tablet) or atouch-screen. Preferably, pointing device 110 is physically located onor near the keyboard 100, so as to be within easy reach of a user. Morethan one pointing device may be provided.

Pointing device 110 may include a switch or sensor having an output line112 for outputting an electrical signal upon the detection of a fingertouching, or in close proximity to, the pointing device. The sensor maycomprise a mechanical switch that is activated by finger movement, or apressure sensor activated by finger pressure, or a capacitive,electrostatic, magnetic or optical sensor activated by a slight touch ofa finger or hand, or activated by the close proximity of a finger orhand to the pointing device 110. A separate hardware switch is not,however, required.

In one embodiment, the system of the invention is configured so that auser's finger touch on the pointing device 110 (or the detection ofclose finger proximity to the pointing device) is interpreted to meanthat the user intends to immediately use the pointing device 110 tocause a mouse cursor (not shown) to start moving across the display 150.Preferably, finger pressure or movement on the pointing device 110 in adownward direction (i.e., in a direction substantially perpendicular tothe plane of the pointing device or keyboard) is interpreted asindicating that the user wishes to start moving the cursor, but adownward direction is not required. For example, if a user touches thepointing device 110 from the side from any direction, this will also beinterpreted as a command to immediately begin controlling the cursor.When the user is using a pen tablet, either the user's touching the penor the pen touching the tablet may be interpreted as a “using” sign.

Because every pointing device is a sensor in itself, information fordetecting whether a user is touching or otherwise using the pointingdevice may be provided without an additional hardware sensor attached tothe pointing device. For example, a touchpad or trackpad is a touchingsensor or a pressure sensor in itself because it needs to detect themotion of the user's finger to control the cursor. Thus, a touchpad ortrackpad may output both cursor movement information andtouching/not-touching information without an additional line or sensor.

Pointing devices that have poor sensing ability, such as the joystick,track stick, desktop mouse or trackball, might not be able to detect afinger touching by themselves. To solve this problem, in one embodimentof the invention, one or more additional sensors can be applied orattached to the pointing device so that the input controller can detecta finger touching or in close proximity to, the pointing device byprocessing the signals from the additional sensor(s) (see FIG. 12).

In the present invention, a signal representing an actual physicaltouching of the user's finger on the pointing device is not alwaysrequired to detect whether the user is using or not using the pointingdevice. For example, pointing device 110 may also include conventionalelectronic, optical or other means for sensing finger movement orpressure that is intended by the user as a command to actually causecursor movement itself. Electrical signals representing intended cursormovement are outputted over output line 114 upon detection of fingermovement or pressure in a plane that is substantially parallel to theplane of the pointing device (if flat), or keyboard (if flat).

In another embodiment, the signals representing intended cursor movementmay also be used by input controller 120 to infer that the user is usingor intends to use the pointing device. By referencing these signals,input controller 120 can detect the beginning and the end of thecursor's movement. Input controller 120 can assume that the user isusing the pointing device while the mouse cursor is moving. Thus, inputcontroller 120 can assume, for example, that the user is touching thepointing device from the moment the mouse cursor begins to move until acertain time interval (such as one second) has elapsed since the lastmovement of the cursor. Thus, the input controller 120 does not alwaysrequire the sensing of an actual “touching” by the user's finger.

Thus, it can be seen that pointing device 110 activates two distinctfunctions. One function is to provide information about whether or notthe user wishes to move or activate the cursor at all (i.e., switch froma “typing mode” to a “cursor mode”). The user's decision whether or notuse the pointing device is sometimes referred to herein as a“using/not-using status.” This in turn controls a keyboard remappingoperation, discussed below. The other function activated by pointingdevice 110 is to initiate and operate actual cursor movement itself.

Pointing device 110 is electrically coupled to an input controller 120via lines 112 and 114, which may be combined if desired. Input device100 is electrically coupled to controller 120 via line 116. In apreferred embodiment, input controller 120 comprises a semiconductorintegrated circuit chip configured to receive, interpret and processelectrical signals via lines 112, 114 and 116, and to provide outputelectrical signals to CPU 130. Signals from line 112 comprise signalsfrom the pointing device itself or from a sensor within or attached topointing device 110 indicating that a finger is touching or nearlytouching the pointing device. Signals from line 114 comprise signalsfrom pointing device 110 indicative of finger pressure or movement onthe pointing device 110 in a direction corresponding to the direction ofactual cursor movement on the display 150 intended by the user. Signalsfrom line 116 comprise signals from input device 100 indicative of thepositions of pressed keys, such as, for example, if the “F” key ispressed.

Line 112 and line 114 may be included into a single line when, forexample, the pointing device and/or input controller can provide both afinger touching information for switching keymaps and cursor movementinformation for controlling the cursor on the screen.

In a feature of the invention, input controller 120 processes thesignals from lines 112 and 116 and activates a “remapping” of the keyson input device 100.

There are at least four ways to determine whether the user is in facttouching or otherwise using or intending to use the pointing device(“using/not using” status): (1) utilize pointing device 110 as a sensorin itself without an additional sensor(s) (in other words, utilize theordinary sensing ability (function) of the pointing device which isusually used to interpret the motion of the user's finger or hand intoelectrical signals to operate the mouse cursor); (2) utilize specialsignals from an additional sensor(s) (FIG. 12); (3) utilize signalsrepresenting cursor movement on the screen by defining a period of“using the pointing device” based on the movement of the cursor symbolon the screen (as opposed to physical movement of the user's finger onthe pointing device); or (4) detect a “text-edit (input)” object thathas been activated by the user.

In a preferred embodiment, in the absence of a sensor or other “cursorin use” signal, a “typing mode” keymap is selected by input controller120 by default, and the “F” key operates in normal “typing mode.” Inother words, pressing the “F” key causes the letter “F” to appear on thedisplay 150. In the presence of a sensor or other “cursor in use”signal, the normal typing mode is disabled, and controller 120, inassociation with CPU 130 and the operating system (not shown), switchthe keymap from “typing mode” to “cursor mode” and causes the “F” key tofunction as a “left mouse click” button, for example. (See FIG. 8.)Optionally, the “S” key may also be disabled and remapped to function asa “right mouse click” button, for example.

This remapping (switching) procedure in this invention can remap(switch) any keys on the keyboard into any kind of function(s) that acomputer can execute, such as “window scroll” functions, “page up/down”functions, and so on. The function(s) of the remapped keys (“cursormode” keys) may be a single command such as “click”, “scroll” or “openfile(s)”, or may be serial commands or command script(s) (programmedcommands such as “Macro” commands) such as “make a copy of a certainfile and move the copy into a certain folder” or “launch a certaincommand script(s), Macro file(s) or application(s)”. Because the specialkeys are, in a sense, function keys that switch function(s) of otherkey(s) to other function(s), special keys, such as “shift” key, “ctrl”key, “command” key, “alt” key, and/or “windows” key, may also be mappedonto “cursor mode” keymap. In other words, “special key function(s)” canbe mapped onto “cursor mode” keymap.

The “cursor mode” keymap can define every function for every combinationof pressed keys in the same way as the “typing mode” keymap usually can.If the “cursor mode” keymap has one or more “special” keys, thefunctions of other keys active while the special key(s) are held pressedmust be defined by one or more keymaps. For example, if there is a“ctrl” key on the “cursor mode” keymap, the functions of other keyswhile the “ctrl” key is held pressed must also be defined by one or morekeymaps so that the user can use shortcut keys by using the “ctrl” key.This means that the “cursor mode” keymap can offer its own set ofshortcut keys to the user during “cursor mode”. This is an importantdifference between this invention and regular special keys found in theprior art such as the shift key. While a shift key switches functions ofother keys (for example, to capitalize letters) except its own function,this invention switches the functions of all keys including specialkeys, and then it also offers another complete keymap which may includenewly defined special keys, shortcut keys and function keys. Eachapplication program may define a different set of special keys, shortcutkeys and function keys. Thus, the user may switch not only between one“typing mode” key map and one “cursor mode” key map, but also between anentire group of “typing mode” key maps and an entire group of “cursormode” key maps.

Of course, if the user so desires to avoid confusion, the “cursor mode”keymap(s) may be configured to present the same set of special keys andshortcut keys that the “typing mode” keymap has. This allows the user,if desired, to use the same set of shortcut keys no matter which keymapis selected.

Execution of commands is accomplished by sending the commands to CPU 130or to application(s) 170 via line 119. Similarly, some applications havetheir own set of shortcut keys, and in this case the input controllerchanges the “cursor mode” keymaps depending on which application iscurrently running or activated. Application(s) can provide informationof its own “cursor mode” keymap to input controller 120 via line 118 orvia CPU 130 and line 117. Input controller 120 may ask or “interrogate”CPU 130 about which application is currently running or active. Then,input controller 120 accesses the active or running application's ownkeymap and changes the “cursor mode” keymap into the keymap that isdesignated as the “cursor mode” keymap by the active or runningapplication.

Each time the active or running application is switched by the user,input controller 120 changes the “cursor mode” keymap to the designatedone. Thus, this invention virtually provides another complete set ofkeys for each application while a user is touching or otherwise usingthe pointing device. The remapping functionality may either behard-wired into input controller 120, or provided under software controlby a keyboard “driver”, operating system software or other running oractivated application 170. Input controller 120 is not always necessaryif CPU 130, a keyboard driver, operating system, or an application canprovide functions equal to input controller 120.

CPU 130 is a conventional semiconductor processor chip such as aPentium® chip manufactured by Intel Corp., for controlling the mainoperations of a computer in conjunction with a conventional operatingsystem (not shown) such as Microsoft Windows®, Linux, Apple OSX, etc.CPU 130 is electrically coupled to graphics processor unit (GPU) 140, aconventional processor for driving the display 150. CPU 130 and GPU 140are each also electrically coupled to storage devices 160.

The operation of the invention may be summarized as follows. As a usermanipulates the pointing device 110, such as with a finger, the pointingdevice sends cursor position or movement signals, and “cursor in use”signals (i.e., signals representing the user's using/not using status)to the input controller 120. As a user types normally, the keyboard orother input device sends signals representing pressed key positions(i.e., which key(s) of the keyboard are being pressed at any given time)to the input controller. The input controller, either alone or inconjunction with the CPU 130, operating system and/or keyboard driversoftware, “decides” immediately whether the user is using (“cursormode”) or not using (“typing mode”) the pointing device, and thenselects or switches to the appropriate key map based on the “decision”.Data representing the key maps are stored in one or more of the storagedevices 160. Then, the input controller sends either conventional texttyping commands of a “typing mode” keymap, or remapped, switchedcommands of a “cursor mode” keymap (such as “mouse click” commands) tothe CPU, graphics processor unit and/or application(s) for ultimatecommand execution, depending upon which key map has been selected by theuser.

FIG. 3 is a flowchart illustrating the logical operation of oneembodiment of the present invention in more detail. At step 200, thereis no user activity (i.e., the user's finger's are not touching eitherthe keyboard/input device 100 or the pointing device 110, or the user isotherwise idle.) In this embodiment, at decision block 210, the “system”(meaning the input controller 120 and/or the CPU 130 with an associatedoperating system) “interrogates” the keyboard at rapid intervals (forexample, every few microseconds or milliseconds) to “see” if any key isbeing pressed. If the user remains inactive, the input controller 120receives either no response signal or a “negative” response signal fromthe keyboard, indicating an idle condition, and the cycle keepsrepeating.

As soon as a key is pressed, the input controller 120 receives a“positive” response signal from the keyboard 100 that a specific key hasbeen pressed, and operation passes to decision block 220. Here, theinput controller immediately interrogates the pointing device 110 to seeif the user's finger is touching or near the pointing device, or if theuser is otherwise using the pointing device. If not, the system“assumes” that the user simply wants to type normally, and anappropriate “typing mode” keymap is selected by the system at step 230.Then, the text of whatever key has been pressed (for example, the “F”key) is outputted at step 250 to the GPU 140 and then to the display.

If, however, the input controller 120 at step 220 determines that thepointing device 110 has been touched, or if the user is otherwise usingor intends to use the pointing device, then the system “assumes” thatthe user does not want to type at that moment but instead wants to moveor click the cursor (it being assumed that the user does not want toboth type and move the cursor at the same time). In this situation, anappropriate “cursor mode” keymap is selected by the input controllerand/or CPU or GPU at step 240, and a “left click” function signal isoutputted at 250 for execution (such as to launch an application 170 oractivate a Web hyperlink if the cursor is positioned over an activescreen area such as icon or link at that moment). Operation is thenreturned to step 200.

Steps 210 and 220 of FIG. 3 may be reversed, if desired, or performed inparallel. FIG. 4 is a flowchart showing steps 210 and 220 reversed.

FIG. 5 is a flowchart illustrating the logical operation of anotherembodiment of the present invention. This embodiment takes into accounta possible “dragging” situation that the user may be faced with. Onoccasion, some users have a need to “drag” an icon or other object fromone area of the screen to another. For example, a user may wish to draga file icon to a particular folder or to a “recycle bin.” On somecomputers, to accomplish this, the user must hold down the left clickbutton and control the pointing device at the same time. If a touchpadis being used as the pointing device, and the object must a dragged along distance across the screen, the user's finger may reach the edge ofthe touchpad before the screen object has been fully dragged across thescreen. At this point, the user will need to momentarily lift his or herfinger off the touchpad and move it to the other side to continue thedragging motion, resulting in a reciprocating motion with the finger.This situation is easily handled by the present invention. In such asituation, the input controller 120 sends the same command (e.g. “clickleft mouse button”, while dragging) repeatedly until the user's fingerleaves a keyboard key (stops pressing a key). This permits dragging tobe performed even after the user's finger leaves the touchpad.

An opposite situation sometimes also occurs with many users. Forexample, if a user presses a key and holds it down while not using thepointing device, this normally means that the user intends for the keyto be repeated. For example, on most computers, holding down the “X” keywill produce a string of X's on the screen. This “repeat function” isuseful and important to many users. The present invention easilyaccommodates this function, in that the input controller 120 sends thesame “key pressed” typing signal to the CPU 130 even if the usersimultaneously touches the pointing device 110, until the user stopspressing the key.

Both of the above-mentioned situations (“dragging situation” and “repeatkey situation”) are easily handled by configuring the input controllerso that the keymap active at that moment is never switched while one ormore keys are held pressed. It is useful to keep the pointing deviceactive as a cursor control device while keymap switching is frozen. Thisis not only because the user can drag object(s) but also because somekinds of applications which deal with 3-dimensional objects, such as CADsoftware or 3D animation editor, let the user rotate 3-dimensionalobjects on the display by operating the pointing device to control therotation while holding down a certain hot-key.

Referring to FIG. 5, at step 200, there is no user activity. In thisembodiment, at decision block 210, the “system” (meaning the inputcontroller 120 and/or the CPU 130 and an associated operating system)“interrogates” the keyboard at rapid intervals (for example, every fewmicroseconds or milliseconds) to “see” if any key is being pressed. Ifthe user remains inactive, the input controller 120 receives either noresponse signal or a “negative” response signal from the keyboard,indicating an idle condition, and the cycle keeps repeating.

As soon as a key is pressed, the input controller 120 receives a“positive” response signal from the keyboard 100 that a specific key hasbeen pressed, and operation passes to decision block 220. Here, theinput controller immediately interrogates the pointing device 110 todetermine if the user's finger is touching or near the pointing device,or if the user is otherwise using or intending to use the pointingdevice. If not, the system “assumes” that the user simply wants to typenormally, and an appropriate “typing mode” key-map is selected by thesystem at step 230. Then, the text of whatever key has been pressed (forexample, the “F” key) is outputted at step 250 to the CPU 130 and/or GPU140 and then to the display 150.

Next, at step 255, the input controller 120 “asks” whether the keyboardkey is being kept pressed, an indication that the user wishes to repeatthe key function (repeat “F”, for example) while holding down the key.This situation could be determined to exist either if the inputcontroller receives a steady “key pressed” signal from the keyboard, orreceives a series of rapid “key pressed” signals from the keyboard inresponse to repeated interrogation by the input controller. If a“continued key pressed” condition is determined to exist at step 255,the “typing mode” key map is again selected at step 230, and the “F”key, for example, continues to function as a text “F” output key. Thisfunctionality is then again enabled by the system and outputted to CPU130 and GPU 140 at step 250. As soon as no further “key pressed”condition is detected at step 255, operation returns to step 200.

If, however, the input controller 120 at step 220 sees that the pointingdevice 110 has been touched, or that the user is otherwise using thepointing device, then the system “assumes” that the user does not wantto type at that moment but instead wants to move or click the cursor,such as to drag an object across the screen. In this situation, anappropriate “cursor mode” key-map is selected at step 240, and a “leftclick” function signal is outputted at 250 for execution (such as tolaunch an application 170, drag object(s), or activate a Web hyperlinkif the cursor is positioned over an active screen area such as icon orlink at that moment), for example.

Next, at step 260, the input controller 120 “asks” whether the keyboardkey is being kept depressed, an indication that the user wishes to“click and drag” a screen object by moving the cursor whilesimultaneously holding down the left click button. This situation couldbe determined to exist either if the input controller receives a steady“key pressed” signal from the keyboard, or receives a series of rapid“key pressed” signals from the keyboard in response to repeatedinterrogation by the input controller. If a “continued key pressed”condition is determined to exist at step 260, the “cursor mode” keymapis again selected at step 240, and the “F” key, for example, continuesto function as a left click button. This functionality is then againenabled by the system and outputted to CPU 130, GPU 140 and/orapplication 170 at step 250. As soon as no further “key pressed”condition is detected at step 260, operation returns to step 200.

Steps 210 and 220 of FIG. 5 may be reversed, if desired, or performed inparallel.

FIG. 6 is a flow chart illustrating the logical operation of anotherembodiment of the present invention. This embodiment takes into accountone or more “shortcut key(s)” or “hot key(s)” that the user may wish touse during both “typing mode” and “cursor mode”. On occasion, some usershave a need to use “shortcut key(s)” or “hot key(s)” to execute one ormore command(s), which are defined by system software or applicationsoftware, by pressing certain key(s) in combination with “specialkey(s)” such as “ctrl”, “alt”, “command”, and/or “option” key(s). Aproblem in this “shortcut key(s)” situation is that the user may wish touse shortcut keys while using the pointing device. This is a problembecause the system might not be able to recognize the shortcut key(s)since the keymap had previously been switched to the “cursor mode”keymap by using the pointing device. This problem is easily handled bythe present invention. In such a situation, the input controller 120 caneasily recognize the shortcut key by detecting “special key(s)” inpressed keys, because “shortcut key(s)” usually include “special key(s)”such as “ctrl”, “alt”, “command”, and/or “option” key(s). When the inputcontroller detects any kind of “special key(s)” at step 215 in FIG. 5,the input controller assumes that one or more shortcut key(s) arepressed, and go to step 216, select “typing mode” keymap, execute acorresponding shortcut-command(s), and return to step 200. At step 216,it may be preferable to select the “typing mode” keymap before executinga shortcut key command(s) because conventional shortcut key(s) mayrequire a conventional keymap (normally the “typing mode” keymap).

Of course, the “cursor mode” keymap(s) may be configured to present thesame set of special keys and shortcut keys that the “typing mode” keymaphas. This allows the user, if desired, to use the same set of shortcutkeys no matter which keymap is selected.

Operations in steps 200 to 260 in FIG. 6 are identical with those ofFIG. 5 except those of steps 215 and 216, which are described above.

Steps 210 and 220 of FIG. 6 may be reversed, if desired, or performed inparallel.

FIG. 7 is a flowchart illustrating the logical operation of anotherembodiment of the present invention. This embodiment takes into accountchanging the “cursor mode” keymap depending upon an activated or runningapplication(s) at the time of operation. Generally, an applicationdesignates its own shortcut key commands. For example, pressing the “S”key while holding the “ctrl” key down may output a “Save a file” commandin one application but it may output a “Sort” command in anotherapplication. (I.e., command(s) of a certain combination of keys(shortcut keys) will typically vary depending on the application.)

On occasion, an application may designate its own, application-specific“cursor mode” keymap similar to that it designates for its own short cutkey commands. At step 235 in FIG. 7, the input controller 120 accessesan application-specific “cursor mode” key map data (stored in one ormore of the storage devices 160) before it switches the keymap to“cursor mode” key map at step 240 and outputs command(s) at step 250. Toacquire application-specific “cursor mode” keymaps, the input controller“asks” CPU 130 or activated application(s) 170 for the data representingthat application's “cursor mode” keymap(s) through line 117 and/or 118in FIG. 2. By this operation at step 235, the user can thus use manykinds of “cursor mode” keymaps by changing active or runningapplication(s). Speed, efficiency, and convenience are thereforeremarkably improved by preparing, storing and using application-specific“cursor mode” keymaps because such keymaps can be custom-designed forapplication-specific tasks, such as page back/forward buttons designedfor web browser software. Operations in steps 200 to 260 in FIG. 7 areidentical with those of FIG. 6 except that of step 235, which isdescribed above.

Steps 210 and 220 of FIG. 7 may be reversed, if desired, or performed inparallel.

FIG. 8 shows an example of a “cursor mode” keymap for right-handedusers. Keys 311 to 314 represents the “home” position keys on aconventional QWERTY keyboard for the little finger, ring finger, middlefinger, and the index finger, respectively, of the left hand. The upperhalf of each key indicates the “typing mode” keymap function. The lowerhalf of each key indicates the “cursor mode” keymap function. “RCB”,“MCB”, and “LCB” represent “right mouse click button function”, “middlemouse click button function”, and “left mouse click button function”during “cursor mode”, respectively. In this example, the user maysimulate a “3-button mouse” operation by using the index, middle andring fingers during “cursor mode”. Moreover, during “cursor mode”, theuser may use keys 302 and 303 to scroll window contents to the right andleft, and may use keys 305 and 315 to scroll window contents up anddown. Keys 311 and 324 may perform page up/down (back/forward) functionsduring “cursor mode”. This example of a “cursor mode” keymap isespecially useful for Web browser applications or text editingapplications because it has page control keys and scroll keys. Since themost frequently used functions in Web browser applications include the“page back” function and the “scroll up/down” functions, it is useful toplace these function keys on or close to the home position keys, asshown in FIG. 8. It may seem counterintuitive at first to map the “F”key into the “left click button” in this example, since the F key isactually to the right of the middle click button (“D” key) in FIG. 8.However, since the left click button is used far more often than theright click button, it has been discovered that greater user comfort andcontrol is achieved if the index finger is the finger to be used forleft mouse clicking.

FIG. 9 shows an example of a “cursor mode” keymap that is designed forleft-handed users. This example is an approximate mirror image of theexample in FIG. 8, except that the positions of the “page fwd” button,“page back” button, “scroll L” button, and “scroll R” button are placedin the same way as in FIG. 8. Keys 342 to 345 represents home positionkeys for the index finger, middle finger, ring finger, and the littlefinger, respectively, of the right hand. The upper half of each keyindicates the “typing mode” keymap function. The lower half of each keyindicates the “cursor mode” keymap function. “RCB”, “MCB”, and “LCB”represent “right mouse click button function”, “middle mouse clickbutton function”, and “left mouse click button function” during “cursormode”, respectively. In this example, the user may simulate a 3-buttonmouse operation by using the index, middle and ring fingers during“cursor mode”. Moreover, during “cursor mode”, the user may use keys 333and 334 to scroll window contents to the left and right, and may usekeys 331 and 341 to scroll window contents up and down. Keys 352 and 345may perform page up/down (back/forward) functions during “cursor mode”.This example of a “cursor mode” keymap is especially useful for Webbrowser applications or text editing applications because it has pagecontrol keys and scroll keys. Since the most frequently used functionsin Web browser applications include the “page back” function and “scrollup/down” functions, it is useful to place these function keys on orclose to the home position keys, as shown in FIG. 9.

Since this example in FIG. 9 is a mirror image of the example in FIG. 8,both keymaps provide equal efficacy and convenience to both right-handedand left-handed users. In addition, an application may contain twopatterns of keymaps to offer the same benefit to both right-handed andleft-handed users. The application may contain two patterns of “cursormode” keymap and select its “cursor mode” keymap depending on thedominant hand of the user. By designating data representative of theuser's dominant hand to the system (CPU, operating system, keyboarddriver, active or running application(s), and/or input controller 120),all users, whether right-handed or left-handed, can enjoy the samebenefit of this invention equally.

FIG. 10 shows an example, which shows how the selected (switched) keymapis indicated on a computer display screen. Because sometimes the usermight want to know which keymap (“typing mode” or “cursor mode”) isselected or activated, it is useful to always display an icon or othersymbol representing the selected keymap on the computer screen. In FIG.10, an asterisk (*) or similar indicator is displayed on the menu bar onthe screen. While the indicator is “on,” it means that the “cursor mode”keymap is currently active. While the indicator is “off,” it means thatthe “typing mode” keymap is currently active. Then, the user canidentify the selected keymap by checking the indicator. Similarly, theselected keymap can be indicated by one or more lights, such as LEDs(light-emitting diodes) placed on the surface of, or within the body ofthe computer, keyboard(s), pointing device(s) and/or other hardware.

The currently active keymap may also be signaled to the user byswitching the appearance of the mouse cursor (mouse pointer) on thecomputer screen.

In FIG. 11, two examples of mouse cursors are shown. During “typingmode”, the mouse cursor may be an open arrow to indicate that “typingmode” keymap has been selected. When the keymap is switched to “cursormode” keymap, the system (CPU, operating system, input controller and/orkeyboard driver) may change the appearance of the mouse cursorimmediately from an open arrow to a solid arrow, or by changing the sizeor shape of the cursor. Because the user usually looks at the mousecursor when he or she wants to perform mouse clicking, it is veryhelpful and useful to tell the user which keymap is selected, bychanging the appearance of the mouse cursor.

FIG. 12 shows an example of a sensor attached to a pointing device toindicate whether the user's finger or hand is touching, or in closeproximity to the pointing device. Because some types of pointing devices(such as the joystick, track stick, desktop mouse, trackball and pen)cannot function or have difficulty functioning as pressure sensors ortouch sensors by themselves to switch the keymap, one or more separatesensor(s) may be provided to detect whether the user is touching or nottouching the pointing device. In this example, the pointing device is ajoystick 620 connected to the computer. A sensor 610 with sensingsurface 630 may be provided on the top surface. Alternatively, a sidesensor 640 may be provided on the body (vertical shaft) of the pointingdevice. By the additional sensor(s), the input controller 120 can detectwhether the user is touching or not touching the pointing device beforethe user initiates actual cursor movement.

The present invention can also accommodate another situation that mayarise from time to time. This relates to the use of a so-called“text-edit (input)” feature found in some applications. Text-edit(input) objects are windows or columns that require text inputs or textediting by the user.

As previously discussed, there are at least four ways to detect (ordetermine) the “using/not-using” status (i.e., whether or not the useris operating the pointing device at a particular moment): (1) use thepointing device as a sensor in itself to detect whether the user isoperating the pointing device or not; (2) use one or more additionalsensors placed on, or close to the pointing device to generate a specialsignal upon the detection of the user's finger or hand touching or inclose proximity to the pointing device; (3) use a signal representingmovement of the cursor symbol on the screen (as opposed to physicalmovement of a finger or hand on the cursor symbol on the screen the gdevice), perhaps together with a short time delay after the cursor stopsmoving; or (4) detect a “text-edit (input)” object that has beenactivated by the user.

Regarding the fourth method, typical examples of text-edit (input)objects include: a window that displays a word processor document, akeyword-input window (column) for a database search, a column thatindicates a file name or folder name, a window of displaying E-mailsoftware, a URL window of a web browser software, and so on.

Usually, when a text-edit (input) object is activated by the user byclicking on the object or by using a “tab” key, a “typing cursor”, whichis different from a “mouse cursor”, is displayed between the texts onthe text-edit (input) object and starts blinking to indicate its“active” status and also to show where next text characters are going tobe inserted. Such a blinking “typing cursor” on an activated text-edit(input) object lets the user know that the object has been activated andis waiting for the user to input new text or to edit the existing texton the object.

Usually such a text-edit object has to be activated by the user byclicking on it or by using a “tab” key before inputting or editing text.When the user activates one of the text-edit objects, the activatedtext-edit object starts to “wait” for any input from the keyboard. Anactivated text-edit (input) object is de-activated by the user byclicking on another place or by activating another object.

Normally, the user prefers to use a “typing mode” keymap only when oneof the text-edit objects is currently active and waiting for the user toinput or edit text. Most users usually do not need to use a “typingmode” keymap if no text-edit object is active at a given time, becausethe machine will not normally display text on the screen in such asituation.

Thus, this embodiment of the invention defines that the user is “notusing” the pointing device if one of the text-edit objects is activated,and defines that the user is “using” the pointing device if no text-editobject is activated. In this way, the system therefore selects the“cursor mode” keymap while no text-edit object is activated, and thenthe system switches to the “typing mode” keymap upon detection ofactivation of a text-edit object. When the user deactivates thetext-edit object, the system deactivates the “typing mode” keymap andactivates the “cursor mode” keymap again.

It should be noted that in the above-mentioned embodiment, the systemassumes the user to be “using” the pointing device even while the useris “doing nothing”, as long as none of text-edit (input) objects hasbeen activated. In contrast, the previously-described embodiments (usingthe first three above-described detecting methods) assume that the useris “not using” the pointing device when the user is doing nothing.

It is also important to note that the system in this embodiment assumesthat the user is “not using” the pointing device even while the user isactually “using” the pointing device, as long as one of text-edit(input) objects has been selected. In contrast, the other threedetecting methods assume that the user is “using” the pointing device inthe same situation.

Technically, using the fourth detecting method described above,sometimes the “typing mode” keymap is selected even though the user istouching the pointing device. For example, when the user moves the mousecursor after activating a text-object, the mouse cursor actually moveseven though a typing cursor remains blinking (i.e. the text-object isstill in activated status.) But, in this embodiment, the system selectsthe “typing mode” keymap, even though the user is now moving the mousecursor using the pointing device.

Among the four ways to detect the using/not-using status, only the firstmethod (1) and the second method (2) require the system to monitor(watch) the pointing device directly. In other words, in the firstmethod (1) and the second method (2), the decision depends upon physicaland relative distance between the user's finger and the pointing device.The pointing device might have to be customized or designed to providespecial signals representing the user's touching or operating orintention to operate the pointing device. On the other hand, in thethird method (3) and the fourth method (4), the system doesn't need tomonitor the pointing device itself but just needs to watch and analyzethe signals that represent actual movement of the mouse cursor on thedisplay, or just needs to watch or look for activated text-edit objects.In other words, in the third method (3) and the forth method (4), itdoesn't matter how many or what kind of pointing device(s) is used orconnected the computer, and only the signals or the activation status oftext-edit objects is required to make a decision.

Features described in this invention can be easily applied to bothdesktop computers and notebook (portable, mobile) computers and otherdevices, such as personal digital assistants or cell phones, includingany kind of computer devices that have one or more keys and a pointingdevice.

In summary, it is important to note that this invention provides one ormore complete sets of alternative keymaps to conventional inputdevice(s) by means of switching keymaps from a “typing mode” keymap to a“cursor mode” keymap upon the detection of a finger touching, or inclose proximity to, the pointing device, or upon otherwise determiningthat the user is operating or intending to operate the pointing device.This means that all keys on the keyboard may switch their functions toany kind of functions or sets of functions (such as command scripts).Moreover, an application may contain its own “cursor mode” keymap(s)(application-specific “cursor mode” keymaps) for both right-handed usersand left-handed users separately.

In a preferred embodiment, conventional, separate mouse click buttonsare also provided on or near the keyboard or pointing device for userswho prefer this arrangement.

While the invention has been described herein with reference to certainpreferred embodiments, these embodiments have been presented by way ofexample only, and not to limit the scope of the invention.

1. A method for switching functions of one or more keys of a computerkeyboard, comprising the steps of: activating a keyboard having aplurality of text typing keys, the keyboard being coupled to a pointingdevice that remains active at all times to permit a user to achieveinstant manual control of a cursor on a display screen; activating afirst keymap for enabling the user to manually activate a text typingmode at the keyboard; determining whether the user is operating thepointing device; and deactivating the first keymap and activating asecond keymap upon determination that the user is operating the pointingdevice, the second keymap operable to enable the user to manuallyactivate a cursor mode at the keyboard; whereby one or more keys of thekeyboard are enabled by the second keymap to control pointing devicefunctions.
 2. The method of claim 1 whereby, upon activation of thesecond keymap, functions of selected text typing keys on the keyboardare switched into cursor control functions that are specified by anactive application.
 3. The method of claim 1 whereby neither the firstkeymap nor the second keymap is switched to another keymap while atleast one key on the keyboard is held pressed.
 4. The method of claim 1whereby shortcut keys are detected and executed regardless of whetherthe first keymap or second keymap is activated.
 5. The method of claim 1whereby functions of at least one typing key on the keyboard is switchedto enable mouse click functions upon activation of the second keymap. 6.The method of claim 2 whereby functions of at least one typing key onthe keyboard is switched to enable window scroll functions uponactivation of the second keymap.
 7. The method of claim 1 wherebyfunctions of at least one typing key on the keyboard is switched toenable page back/forward functions upon activation of the second keymap.8. The method of claim 1 whereby functions of at least one typing key onthe keyboard is switched to enable script execution functions uponactivation of the second keymap.
 9. The method of claim 1 wherebyfunctions of at least one typing key on the keyboard is switched toenable launch application functions upon activation of the secondkeymap.
 10. The method of claim 1 whereby functions of at least onetyping key on the keyboard is switched to enable open file functionsupon activation of the second keymap.
 11. The method of claim 1 wherebyfunctions of at least one typing key on the keyboard is switched toenable sound volume control functions upon activation of the secondkeymap.
 12. The method of claim 1 whereby functions of at least onetyping key on the keyboard is switched to enabledisplay-brightness-control functions upon activation of the secondkeymap.
 13. The method of claim 1 whereby an icon on the display screenindicates whether the first keymap or second keymap is activated. 14.The method of claim 1 whereby a light indicates whether the first keymapor second keymap is activated.
 15. The method of claim 1 whereby theappearance of a cursor on the display screen indicates whether the firstkeymap or second keymap is activated.
 16. The method of claim 1 wherebytwo sets each of the first keymap and second keymap are stored in acomputer memory, one set configured for right-handed users and the otherset configured for left-handed users.
 17. The method of claim 1 wherebyat least one separate mouse click button is provided in addition to thefirst keymap and second keymap.
 18. The method of claim 1 wherebyfunctions of at least one typing key on the keyboard is switched intospecial keys that change the functions of other keys upon activation ofthe second keymap.
 19. The method of claim 1 whereby the first keymap isactivated while a text-edit object is active.
 20. The method of claim 1whereby the second keymap is activated while no text-edit object isactive.